# @staticmethod  被装饰的方法会成为一个静态方法




class User:
    pass
    @staticmethod
    def login(a,b): # 本身是一个普通的函数,被挪到类的内部执行,那么直接给这个函数添加@staticmethod装饰器就可以了
        print('登录的逻辑',a,b)
        # 在函数的内部既不会用到self变量,也不会用到cls类
obj=User()
User.login(1,2)
obj.login(3,4)

class A:
    country = '中国'
    def func(self):
        print(self.__dict__)
    @classmethod
    def clas_func(cls):
        print(cls)
    @staticmethod
    def stat_func():
        print('普通函数')
    @property
    def name(self):
        return 'wahaha'

A().func()
a=A()
a.func()
print(a.__dict__,a.country)

# 能定义到类中的内容
# 静态变量 是个所有的对象共享的变量  有对象\类调用 但是不能重新赋值
# 绑定方法 是个自带self参数的函数    由对象调用
# 类方法   是个自带cls参数的函数     由对象\类调用
# 静态方法 是个啥都不带的普通函数    由对象\类调用
# property属性 是个伪装成属性的方法  由对象调用 但不加括号























